<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1. 接雨水 相向双指针法
        // 时间复杂度：O(n)
        // 空间复杂度：O(1)
        var trap = function(height) {
            let n = height.length
            let ans = 0
            // 左指针
            let left = 0;
            // 右指针
            let right = n - 1
            // 前缀最大值
            let pre_max = 0
            // 右缀最大值
            let suf_max = 0
            debugger
            while (left <= right) {
                debugger
                // 求前缀最大值和右缀最大值
                pre_max = Math.max(pre_max, height[left])
                suf_max = Math.max(suf_max, height[right])
                // 如果前缀最大值小，则容量为前缀最大值减去当前柱子的高度，左指针++
                if (pre_max < suf_max) {
                    ans += pre_max - height[left]
                    left++
                } else {
                    // 如果后缀最大值小，则容量为后缀最大值减去当前柱子的高度，右指针--
                    ans += suf_max - height[right]
                    right--
                }
            }
            return ans
        };
        console.log(trap([0,1,0,2,1,0,1,3,2,1,2,1]));
        // console.log(maxArea([4,2,0,3,2,5]));
    </script>
</body>
</html>